package service;

import org.apache.commons.fileupload.FileItem;

import javax.servlet.http.HttpServletRequest;

/**
 * 文件存储服务接口
 */
public interface FileStoreService {

    /**
     * 存储一个用户上传的文件
     * @param req 用户会话
     * @param file 文件文件
     * @param storePath 文件的存放路径
     * @param filename 文件名
     * @return 文件的URI
     */
    String store(HttpServletRequest req, FileItem file, String storePath, String filename);

    /**
     * 移除一个文件
     * @param pathname 文件的存放完整路径名
     * @return 成功返回true，失败返回false
     */
    boolean remove(String pathname);

    /**
     * 移动或重命名一个文件
     * @param pathname 文件的存放完整路径名
     * @param newPathname 文件的存放完整路径名
     * @return 成功返回newPathname，失败返回null
     */
    String move(String pathname, String newPathname);

    /**
     * 查验文件是否存在
     * @param pathname
     * @return
     */
    boolean exists(String pathname);

    /**
     * 获取文件存储根目录
     * @return 文件存储根目录
     */
    String getFileHome(HttpServletRequest req);
}
